From: Florian Müllner Date: Fri, 22 Nov 2019 21:44:42 +0000 (+0100) Subject: dateMenu: Only show forecasts X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~781^2^2~380 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=f6f373b0c222ddd76ffa02c1c60f97b7468c4153;p=gnome-shell.git dateMenu: Only show forecasts We currently always start with the current weather info, then append forecasts. This is slightly confusing, as the only hint that the first item is special is the past (and potentially "odd") time. Stop doing that and base all items on forecasts. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1927 --- diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js index ec75653d8..a081c12f5 100644 --- a/js/ui/dateMenu.js +++ b/js/ui/dateMenu.js @@ -309,26 +309,24 @@ class WeatherSection extends St.Button { } _getInfos() { - let info = this._weatherClient.info; - let forecasts = info.get_forecast_list(); + let forecasts = this._weatherClient.info.get_forecast_list(); let now = GLib.DateTime.new_now_local(); - let current = info; - let infos = [info]; + let current = GLib.DateTime.new_from_unix_local(0); + let infos = []; for (let i = 0; i < forecasts.length; i++) { let [ok_, timestamp] = forecasts[i].get_value_update(); const datetime = GLib.DateTime.new_from_unix_local(timestamp); if (now.difference(datetime) > 0) continue; // Ignore earlier forecasts - [ok_, timestamp] = current.get_value_update(); - const currenttime = GLib.DateTime.new_from_unix_local(timestamp); - if (datetime.difference(currenttime) < GLib.TIME_SPAN_HOUR) + if (datetime.difference(current) < GLib.TIME_SPAN_HOUR) continue; // Enforce a minimum interval of 1h - current = forecasts[i]; - if (infos.push(current) == MAX_FORECASTS) + if (infos.push(forecasts[i]) == MAX_FORECASTS) break; // Use a maximum of five forecasts + + current = datetime; } return infos; }